<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>类式组件</title>
  </head>

  <body>
    <div id="test"></div>
    <script
      src="https://unpkg.com/react@16/umd/react.development.js"
      crossorigin
    ></script>
    <script
      src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
      crossorigin
    ></script>
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script type="text/babel"></script>
  </body>
  <script type="text/babel">
    //1.创建类式组件
    class Demo extends React.Component {
      render() {
        //render放在哪里-Demo的原型对象上，供实例使用
        //render中的this是谁-Demo组件实例对象
        console.log(this);
        return <h2>我是用类定义的组件(适用于【复杂组件】的定义)</h2>;
      }
    }
    //2.渲染组件到页面
    ReactDOM.render(<Demo />, document.getElementById("test"));
    /*
     执行了 ReactDOM.render(<Demo />之后，发生了什么？
    1.react解析组件标签，找到了demo组件
    2.发现组件是使用类定义的，随后new出了该类的实例，并通过该实例调用到原型上的render方法，将render返回的虚拟dom转为真实dom呈现在页面上
    */
  </script>
</html>
